package cn.iocoder.yudao.adminserver.modules.system.convert.feedback;

import java.util.*;

import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import cn.iocoder.yudao.adminserver.modules.system.controller.feedback.vo.*;
import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.feedback.SysFeedbackDO;

/**
 * 问题反馈 Convert
 *
 * @author hickteam
 */
@Mapper
public interface SysFeedbackConvert {

    SysFeedbackConvert INSTANCE = Mappers.getMapper(SysFeedbackConvert.class);

    SysFeedbackDO convert(SysFeedbackCreateReqVO bean);

    SysFeedbackDO convert(SysFeedbackUpdateReqVO bean);
    SysFeedbackRespVO convert(SysFeedbackDO bean);

    default SysFeedbackRespVO convert(SysFeedbackDO bean, SysUserDO user){
        if ( bean == null ) {
            return null;
        }

        SysFeedbackRespVO sysFeedbackRespVO = new SysFeedbackRespVO();
        sysFeedbackRespVO.setDescription( bean.getDescription() );
        sysFeedbackRespVO.setImgPath( bean.getImgPath() );
        sysFeedbackRespVO.setDataStatus( bean.getDataStatus() );
        sysFeedbackRespVO.setType( bean.getType() );
        sysFeedbackRespVO.setId( bean.getId() );
        if ( bean.getCreator() != null ) {
            sysFeedbackRespVO.setCreatorName( user == null ? "":user.getNickname() );
        }
        sysFeedbackRespVO.setCreateTime( bean.getCreateTime() );

        return sysFeedbackRespVO;
    }

    List<SysFeedbackRespVO> convertList(List<SysFeedbackDO> list);

    PageResult<SysFeedbackRespVO> convertPage(PageResult<SysFeedbackDO> page);

    List<SysFeedbackExcelVO> convertList02(List<SysFeedbackDO> list);

}
